/*
 * Copyright 2008 (C) Callista Enterprise.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"); 
 * you may not use this file except in compliance with the License. 
 * You may obtain a copy of the License at 
 *
 *	http://www.apache.org/licenses/LICENSE-2.0 
 *
 * Unless required by applicable law or agreed to in writing, software 
 * distributed under the License is distributed on an "AS IS" BASIS, 
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
 * See the License for the specific language governing permissions and 
 * limitations under the License.
 */

package com.googlecode.wmbutil.log;

import com.ibm.broker.plugin.MbMessageAssembly;

/**
 * Main log interface. Will also pick the following from the environment:
 * <ul>
 *      <li>Timestamp</li>
 *      <li>WMB flow name</li>
 *      <li>WMB broker name</li>
 * </ul>
 */
public interface TransactionLog {

    void debug(String message, String messageId, String businessId, MbMessageAssembly assembly);
    void debug(String message, String messageId, String[] businessIds, MbMessageAssembly assembly);
    void debug(String message, String messageId, String[] businessIds, MbMessageAssembly assembly, Throwable t);
    
    void info(String message, String messageId, String businessId, MbMessageAssembly assembly);
    void info(String message, String messageId, String[] businessIds, MbMessageAssembly assembly);
    void info(String message, String messageId, String[] businessIds, MbMessageAssembly assembly, Throwable t);

    void warn(String message, String messageId, String businessId, MbMessageAssembly assembly);
    void warn(String message, String messageId, String[] businessIds, MbMessageAssembly assembly);
    void warn(String message, String messageId, String[] businessIds, MbMessageAssembly assembly, Throwable t);

    void error(String message, String messageId, String businessId, MbMessageAssembly assembly);
    void error(String message, String messageId, String[] businessIds, MbMessageAssembly assembly);
    void error(String message, String messageId, String[] businessIds, MbMessageAssembly assembly, Throwable t);
}
